package com.blood.core.resp;


/**
 * @author yelong
 * @version 1.0
 * @date 2020/8/13 11:35
 * @description 结果状态
 */
public interface ResultStatus {

    /**
     * 代表操作是否成功，成功与否由操作者负责定义
     */
    boolean isSuccess();

    /**
     * 代表操作结果的代码
     */
    String getCode();

    /* 操作结果的消息 */
    String getMessage();

    // 判断操作结果是否失败
    default boolean fail() {
        return !isSuccess();
    }

    // 生成 HandleResult
    default HandleResult toResult() {
        return HandleResult.createFrom(this);
    }

    // 生成 HandleResult，并且自定义消息
    default HandleResult toResult(String message) {
        return HandleResult.createFrom(this, message);
    }
}
